package penjat;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Scanner;

public class GestioFitxers {

    private LinkedList<String> llistaParaules = new LinkedList();

    public void llegirParaules(String path) throws FileNotFoundException {
//        llistaParaules = new ArrayList<String>();
//        File f = new File(path);
//        Scanner lectura;       
//            lectura = new Scanner(f);
//            while (lectura.hasNext()) {
//                String paraula = lectura.next();
//                /* passar sempre a majúscules */
//                llista.add(paraula.toUpperCase());
//            }             
    }

//    public LinkedList<String> getLlistaParaules(String path) {
//        Scanner lectura = null;
//        try {
//            lectura = new Scanner(new BufferedReader(new FileReader(path)));
//        } catch (FileNotFoundException e) {
//            System.out.println("Error E/S");
//        }
//        while (lectura.hasNext()) {
//            String par=lectura.next().toUpperCase();
//            System.out.println(par);
//            llistaParaules.add(par);
//        }
//        return llistaParaules;
//    }
    public LinkedList<String> getLlistaParaules(File fitxer) throws FileNotFoundException {
        Scanner lectura = null;
        lectura = new Scanner(fitxer);
        while (lectura.hasNext()) {
            String par = lectura.next().toUpperCase();
            System.out.println(par);
            llistaParaules.add(par);
        }
        return llistaParaules;
    }

    public void gravarLlistaAFitxer(LinkedList<String> l, File fitxer) throws FileNotFoundException {
        FileWriter fw = null;
        PrintWriter pw = null;
        if (fitxer == null) {
            throw new FileNotFoundException();
        } else {
            pw = new PrintWriter(fitxer);
            for (String s : l) {
                pw.println(s);
            }
            pw.close();
        }
    }
    /* funcio que agafa aleatòriament una paraula de la llista */

//    public String nextParaula() {
//        int max = llistaParaules.size();
//        int pos = (int) (Math.random() * max);
//        return llistaParaules.get(pos);
//    }

    /* afegeix una paraula par al final del fitxer de nom path*/
//    public void appendParaula(String par, String path) throws FileNotFoundException {
//        FileWriter f = null;
//        PrintWriter pw = null;
//        try {
//            f = new FileWriter(path, true);
//            pw = new PrintWriter(f);
//
//            pw.print(par);
//            f.close();
//            pw.close();
//        } catch (IOException e) {
//        }
//    }

    /* afegeix una paraula par al principi del fitxer de nom path*/
    public void afegirParaulaPrincipi(String par, String path) throws FileNotFoundException {
        FileWriter f = null;
        PrintWriter pw = null;
        try {
            f = new FileWriter(path);
            pw = new PrintWriter(f);
            pw.println(par);
            f.close();
            pw.close();
        } catch (IOException e) {
        }

    }
}
